// * 使用 mongoose 创建模型
import { Prop, Schema, SchemaFactory } from "@nestjs/mongoose";
import { HydratedDocument } from "mongoose";
import { v4 as uuidv4 } from "uuid";

// 定义 User 文档类型
export type UserDocument = HydratedDocument<User>;

// 使用 @Schema 装饰器定义 User 模型
@Schema() // 将 User 类映射到同名的 MongoDB 集合，但在末尾有一个额外的 “s” - 所以最终的集合名称将是 Users
export class User {
  // 使用 @Prop 装饰器定义 User 模型的属性 接受一个选项对象参数
  // @Prop({ type: String, default: () => uuidv4() }) // 使用 uuid 覆盖默认 mongodb的_id
  // _id: string;
  @Prop({ type: String, default: () => uuidv4() })
  id: string;
  @Prop({ required: true, unique: true })
  nickname: string; // 用户昵称
  @Prop({ required: true })
  password: string; // 用户密码
}

// 使用 SchemaFactory.createForClass 方法创建 UserSchema 实例
export const UserSchema = SchemaFactory.createForClass(User);
